<?php


namespace paySdk\functions\postar\lib\Webhook;


class Webhook
{
    // 商户号
    protected $cust_id;
    // 代理商编号
    protected $aget_id;
    // 第三方订单号（服务商订单号）
    protected $three_order_no;
    // 商户手续费
    protected $cust_fee;
    // 消费者OPEN_ID
    protected $open_id;
    // 消费者IP
    protected $trading_ip;
    // 平台订单号
    protected $order_no;
    // 设备号
    protected $device_no;
    // 	订单完成时间
    protected $suc_order_time;
    // 签名
    protected $sign;

    // 官方退款订单号
    protected $t_order_no;
    // 交易类型（0.银联B扫C 1.支付宝B扫C 2.微信B扫C 3.银联C扫B 5.公众号支付 7.支付宝C扫B 8.小程序交易 11.刷卡 12.插卡 21.挥卡 51.刷脸
    // 61.银行卡撤销 62.银行卡冲正 63.扫码担保扫手机 64.扫码担保扫 POS 65.扫码担保撤销 66.扫码担保完成 67.扫码担保完成撤销 68.预授权
    // 69.预授权撤销 99.未知）
    protected $pay_way;

    // 原订单金额
    protected $txamt;
    // 实付金额
    protected $netr_amt;
    // 商户出资
    protected $cust_amt;
    // 活动标识（补贴类型 0无 1机构补贴 2公司补贴）
    protected $discount_flag;

    // 卡类型：01借记卡、 02贷记卡、03其他
    protected $cart_type;
    // 857商户号
    protected $mercid;
    // 银行名称
    protected $bank_name;
    // 预授权交易类型：01普通刷卡扣率04免签免密05闪付标准类06闪付优惠类21免密免签未优惠"
    protected $ord_type;
    // 卡类型1：01芯片卡02磁条卡
    protected $mediatype;
    // 卡类型2：'01','借记卡','02','贷记卡','03','准贷记卡','04','预付卡'," （by jiangjy20210718 end）
    protected $pos_pay_way;
    // 结算日期
    protected $ustldat;
    // 批次号
    protected $bat_no;
    // 参考号
    protected $sref_no;
    // 官方订单号（如果存在此字段时，扫码识别退款单号为此单号，通过该字段获取T_ORDER_NO进行退款）
    protected $t_pay_no;
    // 双免标识:0不是 1是
    protected $txn_rsv1;
    // 	云闪付标志:0不是 1是
    protected $txn_rsv2;
    // 商户出资优惠信息
    protected $merch_contribute;
    // 微信/支付宝/银联出资
    protected $investment_type;

    public function __construct($parameters = []) {
        if (! empty($parameters)) {
            array_walk($parameters, function ($item, $key) {
                $key_to_lower = strtolower($key);
                if (property_exists($this, $key_to_lower))
                    $this->$key_to_lower = $item;
            });
        }
    }

    public function __set($name, $val) {
        $this->$name = $val;
    }

    public function __get($name) {
        return $this->$name;
    }

}